<?php
//声明一个路由键
$routingKey = 'key_1.queue_1';
//设置一个交换机名称
$exchangeName = 'exchange_4';

//声明交换机
try {
    include 'connection.php';

    //创建一个消息队列
    $q = new AMQPQueue($ch);

    //设置队列名称
    $q->setName('queue_1');

    //设置队列持久化
    $q->setFlags(AMQP_DURABLE);

    //声明消息队列
    $q->declareQueue();

    //交换机和队列通过$routingKey进行绑定
    $q->bind($ex->getName(),$routingKey);

    //接受消息并进行处理的回调方法
    function recevie($envelope,$queue){
        //显示消息
        echo $envelope->getBody().PHP_EOL;

        //处理业务逻辑;
        //sleep(0.01);

        //ack确认，队列收到消费者确认后，会删除消息
        $queue->ack($envelope->getDeliveryTag());
    }
    //设置消息队列消费者回调方法
    $q->consume('recevie');

} catch (AMQPConnectionException $e) {
    echo '创建连接异常：'.$e->getMessage();
    exit();
} catch (AMQPChannelException $e) {
    echo '创建通道异常：'.$e->getMessage();
    exit();
}  catch (AMQPQueueException $e) {
    echo '创建消息队列异常：'.$e->getMessage();
    exit();
} catch (AMQPEnvelopeException $e) {
    echo '消息消费异常：'.$e->getMessage();
    exit();
}

